package com.sc.study.foundation.service;

import java.util.List;
import java.util.Map;

import com.sc.study.foundation.domain.ScSubjectTable;

/**
 * 课程Service接口
 * 
 * @author sc
 * @date 2022-02-27
 */
public interface IScSubjectTableService 
{


    /**
     * 获取科目班级授课老师信息
     * @return
     */
    List<Map> selectSubjectClazzTeacher();

    /**
     * 当如果章节为空时获取新课程的章节
     *
     * @param value 第几次查询到空的情况
     * @param map   当前排课的班级信息
     * @return
     */
    public Map selectNextSubjectChapterNotNull(Integer value, Map map);


    /**
     * 查询课程
     * 
     * @param id 课程主键
     * @return 课程
     */
    public ScSubjectTable selectScSubjectTableById(Long id);

    /**
     * 查询课程列表
     * 
     * @param scSubjectTable 课程
     * @return 课程集合
     */
    public List<ScSubjectTable> selectScSubjectTableList(ScSubjectTable scSubjectTable);

    /**
     * 新增课程
     * 
     * @param scSubjectTable 课程
     * @return 结果
     */
    public int insertScSubjectTable(ScSubjectTable scSubjectTable);

    /**
     * 修改课程
     * 
     * @param scSubjectTable 课程
     * @return 结果
     */
    public int updateScSubjectTable(ScSubjectTable scSubjectTable);

    /**
     * 批量删除课程
     * 
     * @param ids 需要删除的课程主键集合
     * @return 结果
     */
    public int deleteScSubjectTableByIds(Long[] ids);

    /**
     * 删除课程信息
     * 
     * @param id 课程主键
     * @return 结果
     */
    public int deleteScSubjectTableById(Long id);

    /**
     * 获取下一个课表信息
     * @param map 当前班级的课表信息
     * @return
     */
    public Map selectSubjectChapterValue(Map map);
}
